//-------------------------------------------------------
// Copyright (c) 
// All rights reserved.
//
// File Name: IIPCWndCallBack.h
// File Des: 窗口消息进程内/间通信  接口回调基类
// File Summary:
// Cur Version: 1.0
// Author:lzlong
// Create Data:2023-8-10
// History:
//     <Author>    <Time>        <Version>      <Des>
//      lzlong     2023-8-10     1.0
//-------------------------------------------------------
#pragma once
#include "MsgWindow.h"

class CWndForIPC;
class IIPCWndCallBack
{
public:
    IIPCWndCallBack();
    virtual ~IIPCWndCallBack();
    virtual LRESULT OnProcessIPCMsg(UINT msg, WPARAM wparam, LPARAM lparam) { return S_FALSE; }
    virtual LRESULT OnReceiveString(const std::wstring& strMsg, ULONG dwData) { return S_FALSE; }
    virtual LRESULT OnReceiveString(const std::wstring& strMsg) { return S_FALSE; }
    virtual LRESULT OnReceiveString(const std::string& strMsg, ULONG dwData) { return S_FALSE; }
    virtual LRESULT OnReceiveString(const std::string& strMsg) { return S_FALSE; }
    virtual LRESULT OnReceiveCopyData(WPARAM wParam, COPYDATASTRUCT* pCopyData) { return S_FALSE; }
protected:
    virtual LRESULT OnProcessCopyData(WPARAM wParam, COPYDATASTRUCT* pCopyData);
    friend CWndForIPC;  // 为了访问OnProcessCopyData私有函数
};
